これはインタラクティブなノートブックです。ローカルで実行するか、以下のリンクを使用してください:
前提条件
始める前に、必要なライブラリをインストールしてインポートし、W&B APIキーを取得して、Weaveプロジェクトを初期化してください。1. Weaveでプロンプトを作成し改良する
適切なプロンプトエンジニアリングは、モデルが適切にエンティティを抽出するよう導くために非常に重要です。まず、画像データから何を抽出し、どのようにフォーマットするかについての指示をモデルに与える基本的なプロンプトを作成します。次に、追跡と反復のためにWeaveにプロンプトを保存します。2. データセットを取得する
次に、OCRパイプラインの入力として使用する手書きメモのデータセットを取得します。 データセット内の画像はすでにbase64
エンコードされており、前処理なしでLLMがデータを使用できることを意味します。
3. NERパイプラインを構築する
次に、NERパイプラインを構築します。パイプラインは2つの関数で構成されます:- データセットからPIL画像を取得し、
encode_image
VLMに渡すことができる画像のエンコードされた文字列表現を返す関数base64
VLMに渡すことができる画像のエンコードされた文字列表現 - 画像とシステムプロンプトを取り、
extract_named_entities_from_image
システムプロンプトで説明されているように、その画像から抽出されたエンティティを返す関数
named_entity_recognation
that:
- 画像データをNERパイプラインに渡す
- 結果を正しくフォーマットされたJSONで返す
@weave.op()
weave.op関数の実行を自動的にW&B UIで追跡およびトレースします。
すべてのnamed_entity_recognation
weave.op関数が実行されると、完全なトレース結果がWeave UIで表示されます。トレースを表示するには、WeaveプロジェクトのTracesタブに移動します。
processing_results.json
に保存します。結果はWeave UIでも表示できます。
4. Weaveを使用してパイプラインを評価する
VLMを使用してNERを実行するパイプラインを作成したので、Weaveを使用して体系的に評価し、どれだけうまく機能するかを確認できます。WeaveでのEvaluationsについての詳細はEvaluations Overviewで学ぶことができます。 Weave Evaluationの基本的な部分はScorersです。Scorersは、AI出力を評価し、評価メトリクスを返すために使用されます。AIの出力を取り、分析し、結果の辞書を返します。Scorersは必要に応じて入力データを参照として使用でき、評価からの説明や推論などの追加情報も出力できます。 このセクションでは、パイプラインを評価するための2つのScorersを作成します:- プログラム的Scorer
- LLM-as-a-judgeのScorer
プログラム的Scorer
プログラム的Scorer、check_for_missing_fields_programatically
は、モデル出力(named_entity_recognition
関数の出力)を取り、結果の中でkeys
フィールドが欠落しているか空であるかを識別します。
このチェックは、モデルがフィールドをキャプチャできなかったサンプルを特定するのに最適です。
LLM-as-a-judgeのScorer
評価の次のステップでは、画像データとモデルの出力の両方が提供され、評価が実際のNERパフォーマンスを反映していることを確認します。モデル出力だけでなく、画像の内容が明示的に参照されます。 このステップで使用されるScorer、check_for_missing_fields_with_llm
は、スコアリングにLLMを使用します(具体的にはOpenAIのgpt-4o
)。eval_prompt
の内容で指定されているように、check_for_missing_fields_with_llm
はBoolean
値を出力します。すべてのフィールドが画像の情報と一致し、フォーマットが正しい場合、Scorerはtrue
を返します。フィールドが欠落している、空である、不正確である、または一致しない場合、結果はfalse
となり、Scorerは問題を説明するメッセージも返します。
5. 評価を実行する
最後に、渡されたdataset
を自動的にループし、結果をWeave UIにまとめて記録する評価呼び出しを定義します。
次のコードは評価を開始し、NERパイプラインからのすべての出力に2つのScorersを適用します。結果はWeave UIのEvalsタブで確認できます。